
/**
 * 打印机服务模块
 * 提供打印机相关的操作功能
 */

/**
 * 检查打印窗口是否可用
 * @returns {boolean} 窗口是否可用
 */
const isPrintWindowAvailable = () => {
    return global.PRINT_WINDOW != null && !global.PRINT_WINDOW.isDestroyed();
};

/**
 * 获取打印机列表
 * @returns {Promise<Array>} 打印机列表
 */
const getPrinterList = async () => {
    try {
        if (!isPrintWindowAvailable()) {
            return [];
        }
        const list = await global.PRINT_WINDOW.webContents.getPrintersAsync();
        return list || [];
    } catch (error) {
        console.error('获取打印机列表失败:', error);
        return [];
    }
};

/**
 * 获取默认打印机
 * @returns {Promise<Object|null>} 默认打印机对象或null
 */
const getDefaultPrinter = async () => {
    try {
        const list = await getPrinterList();
        return list.find(item => item.isDefault) || null;
    } catch (error) {
        console.error('获取默认打印机失败:', error);
        return null;
    }
};

// 导出所有方法
module.exports = {
    getPrinterList,
    getDefaultPrinter,
    isPrintWindowAvailable
};
